package com.deng.framework.context;

import com.deng.framework.beans.BeansException;

/**
 * ConfigurableApplicationContext 继承自 ApplicationContext，并提供了 refresh 这个核心方法。
 * 如果你有看过一些 Spring 源码，那么一定会看到这个方法。 接下来也是需要在上下文的实现中完成刷新容器的操作过程。
 */
public interface ConfigurableApplicationContext extends ApplicationContext {

    /**
     * 刷新容器
     */
    void refresh() throws BeansException;

    /**
     * 虚拟机关闭钩子注册调用销毁方法
     */
    //定义注册虚拟机钩子的方法 registerShutdownHook
    void registerShutdownHook();
    //手动执行关闭的方法 close
    void close();


}

